Introduction

Numerous independent networks of regulatory elements, including lncRNA, circRNA and pathway, have been developed to crucial roles in computational system biology. Crosstalks among those networks as a bridge to build and decode heterogeneous networks from multidimensional biological knowledge, aids to highlight regulatory elements. And combinations of regulatory elements (CREs) in the local area of heterogeneous network have been a hot issue due to its crucial role in biological processes. We introduce NetLCP, an R package with command and shiny-based GUI modes, for prioritizing CREs with variant ‘switches’. The latest version of NetLCP can be downloaded in https://github.com/mortyran/NetLCP. Here, we provide the whole example workflow related to cellular senescence.

Installation

# Method 1
library(devtools)
devtools::install_github("mortyran/NetLCP")

# Method 2
BiocManager::install('githubinstall')
library(githubinstall)
githubinstall("NetLCP")

Example workflow

1. Data preparation

1.1 First, we read in the cellular senescence gene set as example transcriptome from github.

cs_url = "C:\\Users\\acer\\Desktop\\NetLCP\\Paper\\Tutorial\\CellularSenescenceData"
cs_data = read.table(cs_url, sep = "\t", header = T)
head(cs_data)

1.2 Initialize NetLCP.

1.2.2 Automatically initialize NetLCP, this will depend on your network connection.
library(NetLCP)
dataInitialize()

2. Prioritize the biological elements.

Prioritize the biological elements in heterogenous network by input transcriptome (mRNA/miRNA, but mixed miRNA and mRNA is highly recommended). NetLCP supports miRBase ID for miRNA and Entrez ID for mRNA. The parameter transcriptomeList is the input transcriptome. The prioType represents the biological element type, which currently contains lncRNA, circRNA and pathway(KEGG, Reactome and Wikipathway). empiricalPvalue is alternative for an empirical p.value through random disturbance, default value is FALSE(it could take several hours).

2.1 lncRNA prioritization

lncRNA_prio = BioRegElePrioritization( transcriptomeList = cs_data$Trans_ID, 
                                       prioType = "lncRNA", 
                                       empiricalPvalue = FALSE )
[1] "Filtering the missing elements of transcriptomeList in the input network......"
[1] "Element 10934/7012 have been filtered....."
[1] "Now remain 367"
[1] "Prioritization begins, please wait while we do something......"
[1] "Prioritization finished......"
head(lncRNA_prio)

2.2 circRNA prioritization

circRNA_prio = BioRegElePrioritization( transcriptomeList = cs_data$Trans_ID, 
                                        prioType = "circRNA", 
                                        empiricalPvalue = FALSE )
head(circRNA_prio)

2.3 KEGG pathway prioritization

KEGG_prio = BioRegElePrioritization( transcriptomeList = cs_data$Trans_ID, 
                                     prioType = "KEGG", 
                                     empiricalPvalue = FALSE )
head(KEGG_prio)

2.4 Reactome pathway prioritization

Reactome_prio = BioRegElePrioritization( transcriptomeList = cs_data$Trans_ID, 
                                         prioType = "Reactome", 
                                         empiricalPvalue = FALSE )
[1] "Filtering the missing elements of transcriptomeList in the input network......"
[1] "Element 10934/7012 have been filtered....."
[1] "Now remain 367"
[1] "Prioritization begins, please wait while we do something......"
[1] "Prioritization finished......"
head(Reactome_prio)

2.5 Wikipathway pathway prioritization

Wikipathway_prio = BioRegElePrioritization( transcriptomeList = cs_data$Trans_ID, 
                                            prioType = "Wikipathway", 
                                            empiricalPvalue = FALSE )
head(Wikipathway_prio)

3. Inspect the CREs in local area of heterogenous network

Current CREs types in local area of heterogenous network include binary elements CREs and multiple elements CREs. NetLCP will map the experimentally verified interactions between input biological elements to the local area of heterogenous network. NetLCP supports Ensembl ID for lncRNA, miRBase ID for miRNA, Entrez ID for mRNA, KEGG ID, Reactome ID, Wikipathway ID for pathway.

Here we explore the CREs among the top 10 of lncRNA and Reactome prioritization results and example transcriptome in local area.

# Input data preparation
lncRNA_top10 = lncRNA_prio$NodeName[1:10]
Reactome_top10 = Reactome_prio$NodeName[1:10]
local_elements = c(lncRNA_top10, Reactome_top10, cs_data$Trans_ID)

3.1 Binary elements CREs

Inspect the binary elements CREs in the local area of heterogenous network. elementList represents the biological elements in the interested local area of heterogenous network. regulationType represents the CREs type in local area including circRNA-miRNA, lncRNA-miRNA, lncRNA-mRNA, miRNA-mRNA, miRNA-pathway, mRNA-pathway. allRegulation is a logical value. If you set “FALSE”, it will return the CREs in the local area of heterogenous network which only contains biological elements in the input elementList, i.e. local_elements. If you set “TRUE”, it will search the CREs in the whole depository, which means the results can contain other biological elements. In this case, you can regarded as NetLCP as an independent depository to only extract associated regulatory data. “FALSE” (default) is a common setting.

# miRNA-mRNA CREs in local area
bi_local_miRNA_mRNA = binaryRegulation( elementList = local_elements, 
                                        regulationType = "miRNA-mRNA", 
                                        allRegulation = FALSE )
# miRNA-pathway CREs in local area
bi_local_miRNA_pathway = binaryRegulation( elementList = local_elements,
                                           regulationType = "miRNA-pathway", 
                                           allRegulation = FALSE )

3.2 Multiple elements CREs

Inspect the multiple elements CREs in the local area of heterogenous network.regulationType represents the CREs type in local area including lncRNA-miRNA-mRNA, circRNA-miRNA-mRNA, lncRNA-miRNA-mRNA-pathway and circRNA-miRNA-mRNA-pathway. Other parameters are the same as binaryRegulation function. Here we concentrate on the lncRNA-miRNA-mRNA-pathway CREs in the local area.

multi_local = multieleRegulation( elementList = local_elements, 
                                  regulationType = "lncRNA-miRNA-mRNA-pathway", 
                                  allRegulation = FALSE )
[1] "Filtering the missing input elements in input network......"
[1] "10934/7012 have been filtered....."
[1] "Now remain 387"
[1] "Multielement regulation extraction begins, please wait while we do something......"
head(multi_local)

3.3 Biological elements statistics

You can calculate the degree of biological elements in the local heterogenous network and customize the network visualization of results.

regData is the standard output of binaryRegulation or multieleRegulation functions, filterDegree means filtering the nodes which are less than it. selectNode represents certain or a group of elements you specify. netLayout is the alternative layout of network, “layout_nicely” or “layout_in_circle” (If the network is too large to exhibit, try to use this layout).

# Calculate the degree of biological elements in the local heterogenous network.
regStat( regData = multi_local, 
         filterDegree = 40, 
         selectNode = NULL )
# network visualization.
regNetVis( regData = multi_local, 
           filterDegree = 40, 
           selectNode = NULL, 
           netLayout = "layout_nicely" )
# if you want to see the associated CREs of the biological
# element "4193" in local area of heterogeous network.
regNetVis( regData = multi_local, 
           filterDegree = 40, 
           selectNode = "4193", 
           netLayout = "layout_nicely" )

4. Prioritizing CREs.

Prioritize the CREs by their eQTLs numbers.

4.1 Detect the eQTLs in the local area of heterogenous network.

regData is the standard output of binaryRegulation or multieleRegulation functions.

eQTLsData = eQTLsDetection(regData = multi_local)
[1] "Single biological elements eQTLs extracting extracting begins......"
head(eQTLsData)
4.2 eQTLs statistics

You can perform statistics on the eQTLs of single elements or CREs and customize the network visualization of results. regData is the standard output of binaryRegulation or multieleRegulation functions, eQTLsData is the standard output of “eQTLsDetection”. regulationType represent the regulation type of regData, which supports circRNA-miRNA, lncRNA-miRNA, lncRNA-mRNA, miRNA-mRNA, miRNA-pathway, mRNA-pathway, circRNA-miRNA-mRNA, lncRNA-miRNA-mRNA, miRNA-mRNA-pathway, lncRNA-miRNA-mRNA-pathway and circRNA-miRNA-mRNA-pathway. filterDegree means filtering the nodes which are less than it. selectNode represents a group of elements you specify. netLayout is the alternative layout of network, “layout_nicely” or “layout_in_circle” (If the network is too large to exhibit, try to use this layout).

# count the eQTLs of single elements.
eQTLsSingleEleStat( regData = multi_local, 
                    eQTLsData = eQTLsData, 
                    filterDegree = 15, 
                    selectNode = NULL )
# count the eQTLs of CREs.
eQTLsRegStat( regData = multi_local, 
              eQTLsData = eQTLsData,
              regulationType = "lncRNA-miRNA-mRNA-pathway",
              filterDegree = 15, 
              selectNode = NULL )
# network visualization.
eQTLsNetVis( regData = multi_local, 
             eQTLsData = eQTLsData, 
             filterDegree = 30,
             selectNode = NULL,
             netLayout = "layout_in_circle" )
# Give that you highlight the CRE "ENSG00000251562 - MIMAT0000081 - 4193 - R-HSA-2559580" 
# by statistics, you want to concentrate on the eQTLs of the biological elements in this CRE.
eQTLsNetVis(regData = multi_local, 
            eQTLsData = eQTLsData,
            filterDegree = 30, # this parameter will be automatically ignored when setting "selectNode"
            selectNode = c("ENSG00000251562", "MIMAT0000081", "4193", "R-HSA-2559580"), 
            netLayout = "layout_nicely")

5. Detecting variant ‘switches’ in CREs.

Detect variant ‘switches’ on the binding site in CREs.

5.1 Detect the variant ‘switches’ on the binding site of CREs in the local area of heterogenous network

regData is the standard output of binaryRegulation or multieleRegulation functions. regulationType represent the regulation type of regData, which supports “miRNA-mRNA”, “miRNA-mRNA-pathway”, “lncRNA-miRNA-mRNA”, “circRNA-miRNA-mRNA”, “lncRNA-miRNA-mRNA-pathway” or “circRNA-miRNA-mRNA-pathway”.

regVarData = regVarDetection(regData = multi_local, regulationType = "lncRNA-miRNA-mRNA-pathway")
[1] "Variants on regulations extracting begins......"
head(regVarData)
5.2 Variant ‘switches’ statistics

“regVarData” is the standard output of regVarDetection function. regulationType is the same as parameter in regVarDetection function. selectNode is always needed and only accept a group of elements in CREs.

# count the variant 'switches' on the binding sites of CREs.
regVarStat(regVar = regVarData, 
           regulationType = "lncRNA-miRNA-mRNA-pathway", 
           selectNode = c("ENSG00000251562", "MIMAT0000081", "4193", "R-HSA-2559580", "ENSG00000247556"))
# network visualization.
regVarNetVis(regVar = regVarData, 
             regulationType = "lncRNA-miRNA-mRNA-pathway", 
             selectNode = c("ENSG00000251562", "MIMAT0000081", "4193", "R-HSA-2559580"))

If you have any questions, please contact us without hesitation.

Ming-Yu, Ran

Email: